<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>逻辑中断</title>
</head>

<body>
  <script>
    // 逻辑中断   && ||

    // 1. 逻辑与(&&)中断：如果左边为假，则中断，如果左边为真，则返回右边的值
    // console.log(false && 1 + 2) // 发生中断, false
    // console.log(0 && 1 + 2) // 发生中断, 0
    // console.log('' && 1 + 2) // 发生中断, ''
    // console.log(undefined && 1 + 2) // 发生中断, undefined
    // console.log(true && 1 + 2) // 返回 3
    // console.log(1 && 1 + 2) // 返回3

    // 2. 逻辑或(||)中断，如果左侧为真，则中断，如果左侧为假，则返回右边的值
    // console.log(true || 1 + 2) // 发生中断, true
    // console.log(1 || 1 + 2) // 发生中断, 1
    // console.log(false || 1 + 2) // 没有中断, 3
    // console.log('' || 3 + 4) // 7
    // console.log(undefined || 8 + 9) // 17

    // 3. 使用场景
    function sum(num1, num2) { // num1 = 10, num2 = 20
      num1 = num1 || 0
      num2 = num2 || 0
      return num1 + num2
    }

    console.log(sum(10, 20))
    // console.log(sum()) // 0
    // console.log(sum(10)) // 10
  </script>
</body>

</html>